package com.rds.common.core.domain.entity;

import com.rds.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 项目文件夹对象关系表 rda_folder
 * @author rds
 */
public class Folder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long Id;

    /** 父ID */
    private Long parentid;

    /** 项目ID */
    private Long projectid;

    /** 文件夹名称 */
    private String folderName;

    /** 文件夹描述 */
    private String description;

    /** 状态 */
    private Integer status;

    /** 类型 */
    private Long typeid;

    /** 策略 */
    private Long policyid;

    /** 状态 */
    private Long stateid;

    /** 版本 */
    private String revision;

    /** 所有者 */
    private Long ownerid;

    /** 级别 */
    private Long level;

    /** 序号 */
    private Long rdorder;

    /** 修改时间 */
    private Date modifyTime;

    /*来源系统对象Id**/
    private String objectId;
    /*来源系统名称**/
    private String source;

    /** 2022-04-12 yany排序 */
    private String sort;

    /** 总计 */
    private Long sum;

    public List<Folder> getFolderList() {
        return folderList;
    }

    public void setFolderList(List<Folder> folderList) {
        this.folderList = folderList;
    }

    private List<Folder> folderList;

    public Long getId()
    {
        return Id;
    }

    public void setId(Long Id)
    {
        this.Id = Id;
    }

    public Long getParentid()
    {
        return parentid;
    }

    public void setParentid(Long parentid)
    {
        this.parentid = parentid;
    }

    public Long getProjectid()
    {
        return projectid;
    }

    public void setProjectid(Long projectid)
    {
        this.projectid = projectid;
    }

    public String getFolderName()
    {
        return folderName;
    }

    public void setFolderName(String folderName)
    {
        this.folderName = folderName;
    }

    public String getDescription()
    {
        return description;
    }

    public void setDescription(String description)
    {
        this.description = description;
    }

    public Long getTypeid()
    {
        return typeid;
    }

    public void setTypeid(Long typeid)
    {
        this.typeid = typeid;
    }

    public Long getPolicyid() {
        return policyid;
    }

    public void setPolicyid(Long policyid)
    {
        this.policyid = policyid;
    }

    public Long getStateid()
    {
        return stateid;
    }

    public void setStateid(Long stateid)
    {
        this.stateid = stateid;
    }

    public Integer getStatus()
    {
        return status;
    }

    public void setStatus(Integer status)
    {
        this.status = status;
    }

    public String getRevision()
    {
        return revision;
    }

    public void setRevision(String revision)
    {
        this.revision = revision;
    }

    public Long getOwnerid()
    {
        return ownerid;
    }

    public void setOwnerid(Long ownerid)
    {
        this.ownerid = ownerid;
    }

    public Long getLevel()
    {
        return level;
    }

    public void setLevel(Long level)
    {
        this.level = level;
    }

    public Long getRdorder()
    {
        return rdorder;
    }

    public void setRdorder(Long rdorder)
    {
        this.rdorder = rdorder;
    }

    public Date getModifyTime()
    {
        return modifyTime;
    }

    public void setModifyTime(Date modifyTime)
    {
        this.modifyTime = modifyTime;
    }

    /** 子部门 */
    private List<Folder> children = new ArrayList<Folder>();

    public List<Folder> getChildren()
    {
        return children;
    }

    public void setChildren(List<Folder> children)
    {
        this.children = children;
    }

    public String getObjectId() {
        return objectId;
    }

    public void setObjectId(String objectId) {
        this.objectId = objectId;
    }

    public String getSource() {
        return source;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public String getSort() {
        return sort;
    }

    public void setSort(String sort) {
        this.sort = sort;
    }

    public Long getSum() {
        return sum;
    }

    public void setSum(Long sum) {
        this.sum = sum;
    }

    @Override
    public String toString() {
        return "Folder{" +
                "Id=" + Id +
                ", parentid=" + parentid +
                ", projectid=" + projectid +
                ", folderName='" + folderName + '\'' +
                ", description='" + description + '\'' +
                ", status=" + status +
                ", typeid=" + typeid +
                ", policyid=" + policyid +
                ", stateid=" + stateid +
                ", revision='" + revision + '\'' +
                ", ownerid=" + ownerid +
                ", level=" + level +
                ", rdorder=" + rdorder +
                ", modifyTime=" + modifyTime +
                ", objectId='" + objectId + '\'' +
                ", source='" + source + '\'' +
                ", sort='" + sort + '\'' +
                ", sum=" + sum +
                ", folderList=" + folderList +
                ", children=" + children +
                '}';
    }
}
